# Hugging Face Hub နှင့် ပေါင်းစပ်မှုများ[[integrations-with-the-hugging-face-hub]]

<CourseFloatingBanner chapter={9}
  classNames="absolute z-10 right-0 top-0"
  notebooks={[
    {label: "Google Colab", value: "https://colab.research.google.com/github/huggingface/notebooks/blob/master/course/en/chapter9/section5.ipynb"},
    {label: "Aws Studio", value: "https://studiolab.sagemaker.aws/import/github/huggingface/notebooks/blob/master/course/en/chapter9/section5.ipynb"},
]} />

သင့်ဘဝကို ပိုမိုလွယ်ကူစေရန် Gradio က Hugging Face Hub နဲ့ Hugging Face Spaces တို့နဲ့ တိုက်ရိုက်ပေါင်းစပ်ထားပါတယ်။
Hub နဲ့ Spaces ကနေ demos တွေကို **code တစ်လိုင်းတည်း**နဲ့ load လုပ်နိုင်ပါတယ်။

### Hugging Face Hub မှ Models များကို Loading လုပ်ခြင်း[[loading-models-from-the-hugging-face-hub]]
စတင်ဖို့အတွက်၊ [Chapter 4](/course/chapter4/2) မှာ ဖော်ပြထားတဲ့အတိုင်း Hugging Face က Hub မှတစ်ဆင့် ပံ့ပိုးပေးတဲ့ ထောင်ပေါင်းများစွာသော models တွေထဲက တစ်ခုကို ရွေးချယ်ပါ။

အထူး `Interface.load()` method ကို အသုံးပြုပြီး၊ `"model/"` (ဒါမှမဟုတ် တူညီတဲ့ `"huggingface/"`) နောက်မှာ model name ကို ပေးရပါမယ်။
ဥပမာ၊ ကြီးမားတဲ့ language model ဖြစ်တဲ့ [GPT-J](https://huggingface.co/EleutherAI/gpt-j-6B) အတွက် demo တစ်ခုတည်ဆောက်ဖို့၊ ဥပမာ input အနည်းငယ်ထည့်ဖို့ code က အောက်ပါအတိုင်းပါ။

```py
import gradio as gr

title = "GPT-J-6B"
description = "Gradio Demo for GPT-J 6B, a transformer model trained using Ben Wang's Mesh Transformer JAX. 'GPT-J' refers to the class of model, while '6B' represents the number of trainable parameters. To use it, simply add your text, or click one of the examples to load them. Read more at the links below."
article = "<p style='text-align: center'><a href='https://github.com/kingoflolz/mesh-transformer-jax' target='_blank'>GPT-J-6B: A 6 Billion Parameter Autoregressive Language Model</a></p>"

gr.Interface.load(
    "huggingface/EleutherAI/gpt-j-6B",
    inputs=gr.Textbox(lines=5, label="Input Text"),
    title=title,
    description=description,
    article=article,
).launch()
```

အထက်ပါ code က အောက်ပါ interface ကို ထုတ်ပေးပါလိမ့်မယ်။

<iframe src="https://course-demos-gpt-j-6B.hf.space" frameBorder="0" height="750" title="Gradio app" class="container p-0 flex-grow space-iframe" allow="accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>

ဒီနည်းလမ်းနဲ့ model တစ်ခုကို load လုပ်တာက model ကို memory ထဲမှာ load လုပ်တာထက် Hugging Face ရဲ့ [Inference API](https://huggingface.co/inference-api) ကို အသုံးပြုပါတယ်။ ဒါက GPT-J ဒါမှမဟုတ် T0pp လို RAM အများကြီး လိုအပ်တဲ့ ကြီးမားတဲ့ models တွေအတွက် အကောင်းဆုံးပါပဲ။

### Hugging Face Spaces မှ Loading လုပ်ခြင်း[[loading-from-hugging-face-spaces]]
Hugging Face Hub ကနေ Space တစ်ခုခုကို load လုပ်ပြီး locally ပြန်လည်ဖန်တီးဖို့အတွက် `spaces/` ကို `Interface` ကို ပေးပြီး နောက်မှာ Space ရဲ့ နာမည်ကို ထည့်ပေးနိုင်ပါတယ်။

Section 1 က image background ကို ဖယ်ရှားပေးတဲ့ demo ကို မှတ်မိသေးလား။ အဲဒါကို Hugging Face Spaces ကနေ load လုပ်ကြရအောင်။

```py
gr.Interface.load("spaces/abidlabs/remove-bg").launch()
```

<iframe src="https://course-demos-remove-bg-original.hf.space" frameBorder="0" height="650" title="Gradio app" class="container p-0 flex-grow space-iframe" allow="accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>

Hub ဒါမှမဟုတ် Spaces ကနေ demos တွေကို load လုပ်တဲ့အခါ ကောင်းတဲ့အချက်တွေထဲက တစ်ခုကတော့ parameters တွေကို override လုပ်ခြင်းဖြင့် ၎င်းတို့ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်တာပါပဲ။ ဒီနေရာမှာ၊ ကျွန်တော်တို့ title တစ်ခုထည့်ပြီး webcam နဲ့ အလုပ်လုပ်အောင် ပြောင်းလိုက်ပါတယ်။

```py
gr.Interface.load(
    "spaces/abidlabs/remove-bg", inputs="webcam", title="သင့် webcam နောက်ခံကို ဖယ်ရှားပါ!"
).launch()
```

<iframe src="https://course-demos-Remove-bg.hf.space" frameBorder="0" height="550" title="Gradio app" class="container p-0 flex-grow space-iframe" allow="accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-downloads"></iframe>

အခု ကျွန်တော်တို့ Hugging Face Hub နဲ့ Gradio ကို ပေါင်းစပ်ဖို့ နည်းလမ်းအချို့ကို လေ့လာပြီးပြီဆိုတော့၊ `Interface` class ရဲ့ အဆင့်မြင့် features အချို့ကို ကြည့်ကြရအောင်။ ဒါက နောက်အပိုင်းရဲ့ ခေါင်းစဉ်ပါပဲ!

## ဝေါဟာရ ရှင်းလင်းချက် (Glossary)

*   **Integrations**: မတူညီသော ဆော့ဖ်ဝဲလ်စနစ်များ သို့မဟုတ် applications များကို အတူတကွ အလုပ်လုပ်နိုင်အောင် ပေါင်းစပ်ခြင်း။
*   **Hugging Face Hub**: AI မော်ဒယ်တွေ၊ datasets တွေနဲ့ demo တွေကို အခြားသူတွေနဲ့ မျှဝေဖို့၊ ရှာဖွေဖို့နဲ့ ပြန်လည်အသုံးပြုဖို့အတွက် အွန်လိုင်း platform တစ်ခု ဖြစ်ပါတယ်။
*   **Hugging Face Spaces**: Hugging Face Hub ၏ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး Gradio ကဲ့သို့သော library များကို အသုံးပြု၍ Machine Learning demos များကို host လုပ်ပြီး မျှဝေနိုင်သည်။
*   **Gradio**: Python library တစ်ခုဖြစ်ပြီး machine learning မော်ဒယ်တွေအတွက် အသုံးပြုရလွယ်ကူတဲ့ web interface တွေ ဒါမှမဟုတ် demo တွေကို အလွယ်တကူ ဖန်တီးနိုင်စေပါတယ်။
*   **Demos**: Machine Learning model များ၏ စွမ်းဆောင်ရည်ကို တိုက်ရိုက်ပြသနိုင်သော interactive application များ။
*   **`Interface.load()` Method**: Gradio ၏ `Interface` class မှ method တစ်ခုဖြစ်ပြီး Hugging Face Hub မှ models များ သို့မဟုတ် Spaces များကို တိုက်ရိုက် load လုပ်ရန် အသုံးပြုသည်။
*   **`"model/"` / `"huggingface/"`**: Hugging Face Hub မှ model များကို load လုပ်ရန်အတွက် `Interface.load()` တွင် အသုံးပြုသော prefix။
*   **Model Name**: Hugging Face Hub တွင် model တစ်ခုကို ဖော်ပြသော ထူးခြားသည့် နာမည်။
*   **GPT-J**: EleutherAI မှ ထုတ်လုပ်ထားသော Large Language Model (LLM) တစ်မျိုး။
*   **Large Language Model (LLM)**: လူသားဘာသာစကားကို နားလည်ပြီး ထုတ်လုပ်ပေးနိုင်တဲ့ အလွန်ကြီးမားတဲ့ Artificial Intelligence (AI) မော်ဒယ်တွေ ဖြစ်ပါတယ်။
*   **Trainable Parameters**: model အတွင်းရှိ လေ့ကျင့်နိုင်သော weights နှင့် biases များ၏ အရေအတွက်။
*   **`gr.Textbox`**: Gradio ၏ input component တစ်မျိုးဖြစ်ပြီး အသုံးပြုသူအား စာသားများ ရိုက်ထည့်ရန် ခွင့်ပြုသည်။
*   **`lines` Parameter**: `Textbox` component တွင် ပြသနိုင်သော စာကြောင်းအရေအတွက်ကို သတ်မှတ်သည်။
*   **`label` Parameter**: component ၏ ဘေးတွင် ပြသရန် စာသား label ကို သတ်မှတ်သည်။
*   **`title` Parameter**: Gradio demo အတွက် ခေါင်းစဉ်ကို သတ်မှတ်သည်။
*   **`description` Parameter**: Gradio interface အတွက် ဖော်ပြချက် (text, Markdown, သို့မဟုတ် HTML) ကို သတ်မှတ်သည်။
*   **`article` Parameter**: Gradio interface အကြောင်း ပိုမိုကျယ်ပြန့်သော ဖော်ပြချက် (text, Markdown, သို့မဟုတ် HTML) ကို သတ်မှတ်သည်။
*   **`launch()` Method**: Gradio Interface ကို web server တစ်ခုအဖြစ် စတင်လုပ်ဆောင်သည်။
*   **Inference API**: Hugging Face မှ ပံ့ပိုးပေးသော API တစ်ခုဖြစ်ပြီး trained models များကို cloud ပေါ်တွင် run ပြီး predictions များ ရယူနိုင်စေသည်။
*   **In Memory**: Program တစ်ခု အလုပ်လုပ်နေစဉ် ကွန်ပျူတာ၏ RAM တွင် ဒေတာများကို တိုက်ရိုက် load လုပ်ထားခြင်း။
*   **RAM (Random Access Memory)**: ကွန်ပျူတာ၏ ယာယီမှတ်ဉာဏ်သိုလှောင်ရာနေရာ။
*   **T0pp**: ကြီးမားသော Transformer-based language model တစ်ခု။
*   **`"spaces/"`**: Hugging Face Spaces မှ demo များကို load လုပ်ရန်အတွက် `Interface.load()` တွင် အသုံးပြုသော prefix။
*   **Override Parameters**: default parameter တန်ဖိုးများကို အသစ်သော တန်ဖိုးများဖြင့် အစားထိုးခြင်း။
*   **`inputs="webcam"`**: Gradio interface အတွက် input source ကို webcam အဖြစ် သတ်မှတ်ခြင်း။
*   **Advanced Features**: ဆော့ဖ်ဝဲလ်တစ်ခု၏ ပုံမှန်လုပ်ဆောင်နိုင်စွမ်းများထက် ပိုမိုရှုပ်ထွေးသော သို့မဟုတ် သီးခြားလုပ်ဆောင်ချက်များ။